package com.mhg.threadpool;

import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;

public class Demo_02 {

	public static void main(String[] args) {
		//static ExecutorService newFixedThreadPool(int nThreads) 固定大小线程池
		/*
		 * 创建一个可重用固定线程数量的线程池
		 * 可以为线程池设置大小
		 * 因为线程池大小设置为3 每个任务 输出index 后 sleep2秒 所以每次两秒后 打印一组三个
		 * 注意 定长的线程池 大小最好设置为和系统cpu核数一致
		 * */
		int cpu = Runtime.getRuntime().availableProcessors();//获取cpu核数
		ExecutorService fixed = Executors.newFixedThreadPool(3);
		for(int i=0;i<10;i++){
			final int index = i;
			//向线程池提交一个任务
			fixed.execute(new Runnable() {
				
				@Override
				public void run() {
					System.out.println(Thread.currentThread().getName()+",,,,"+index);
					try {
						Thread.sleep(2000);
					} catch (InterruptedException e) {
						// TODO Auto-generated catch block
						e.printStackTrace();
					}
				}
			});
		}
		fixed.shutdown();
	}

}
